<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title></title>
	<link href="../styles/minimenu.css" rel="stylesheet" type="text/css">
	<link href="../styles/gmap.css" rel="stylesheet" type="text/css">
	<script src="../js/gmap.js" type="text/javascript"></script>
	<script src="../js/minimenu.js" type="text/javascript"></script>
    <script src="../js/validator.js" type="text/javascript"></script>
    <!--<script src="../OpenLayers/lib/OpenLayers.js"></script>-->
	<?php include ("../config.php"); ?>
<!--    <script src="http://maps.google.com/maps?file=api&amp;v=2.x&amp;key=< ?=GMAP_KEY?>" type="text/javascript"></script>-->

    <script type="text/javascript">
		var geo = null; //objeto Google GeoCoder

		function cleanFormBuscarPunto(){
			hideDiv('searchPointErrorDisplay');
			document.getElementById("searchPointErrorDisplay").innerHTML = "";
			document.getElementById('searchPuntoCalle').value="";
			document.getElementById('searchPuntoAltura').value="";
			document.getElementById('searchPuntoCiudad').value = window.parent.GEO_CIUDAD;
			document.getElementById("searchPuntoProvincia").value = window.parent.GEO_PROVINCIA;
			document.getElementById('searchPuntoPais').value= window.parent.GEO_PAIS;
		}

		function validateFormBuscarPunto(){
			errorMsg = '';
			calle = document.getElementById("searchPuntoCalle").value;
			altura = document.getElementById("searchPuntoAltura").value;
			ciudad = document.getElementById("searchPuntoCiudad").value;
			provincia = document.getElementById("searchPuntoProvincia").value;
			pais = document.getElementById("searchPuntoPais").value;
			if (trim(calle)!=''){
				if (!_validString(calle))
					errorMsg += "El campo 'calle' no acepta caracteres especiales.<br>";
				}
			else
				errorMsg += "El campo 'calle' es obligatorio.<br>";

			if (trim(altura)!=''){
				if (!_digits(altura))
					errorMsg += "El campo 'altura' debe ser numerico.<br>";
				}
			else
				errorMsg += "El campo 'altura' es obligatorio.<br>";

			if (trim(ciudad)!=''){
				if (!_validString(ciudad))
					errorMsg += "El campo 'ciudad' no acepta caracteres especiales.<br>";
				}
			else
				errorMsg += "El campo 'ciudad' es obligatorio.<br>";

			if (trim(provincia)!='')
				if (!_validString(provincia))
					errorMsg += "El campo 'provincia' no acepta caracteres especiales.<br>";

			if (trim(pais)!='')
				if (!_validString(pais))
					errorMsg += "El campo 'pais' no acepta caracteres especiales.<br>";

			if (errorMsg == '')
				return true;
			document.getElementById("searchPointErrorDisplay").innerHTML = errorMsg;
			showDiv("searchPointErrorDisplay");
			return false;
		}

		      // ====== Array for decoding the failure codes ======
      var reasons=[];
//      reasons[G_GEO_SUCCESS]            = "Success";
//      reasons[G_GEO_MISSING_ADDRESS]    = "Dirección No Encontrada: La direccion falta o carece de valor.";
//      reasons[G_GEO_UNKNOWN_ADDRESS]    = "Dirección Desconocida: La ubicación geográfica correspondiente no se ha podido encontrar para los datos especificados.";
//      reasons[G_GEO_UNAVAILABLE_ADDRESS]= "Direccion No Disponible: La codificación geográfica de la dirección no pueden ser devuelta debido a razones legales o contractuales";
//      reasons[G_GEO_BAD_KEY]            = "Error de Clave: La API es inválida o no coincide con el dominio para la que se asigno";
//      reasons[G_GEO_TOO_MANY_QUERIES]   = "Demasiadas Preguntas: La cuota de códigos geográficos asignada a este sitio ha sido superada.";
//      reasons[G_GEO_SERVER_ERROR]       = "Error del servidor: La solicitud de geocodificación no pudo ser procesada con éxito.";
//      reasons[403]                      = "Error 403: Probablemente error causado por el tratamiento de datos inválidos JSON.";


      // ====== Geocoding ======
      function pointFromAddressError(msg){
        document.getElementById("searchPointErrorDisplay").innerHTML = msg;
		showDiv('searchPointErrorDisplay');
      }
      function pointFromAddressOk(p){
    	//Imprimimos las coordenadas del resultado y localizamos el punto en el mapa
        lng = p[0];
        lat = p[1];
		var lonlat = new window.parent.OpenLayers.LonLat(lng,lat);
		if (window.parent.puntoModificar==null){
		  	  window.parent.nuevoPunto();
			  window.parent.marcarNuevoPunto(lonlat.transform(window.parent.cMapController.getMapActive().getDisplayProjection(), window.parent.cMapController.getMapActive().getProjection()));
		}else{
			  window.parent.modificarPunto();
			  window.parent.marcarNuevoPunto(lonlat.transform(window.parent.cMapController.getMapActive().getDisplayProjection(), window.parent.cMapController.getMapActive().getProjection()));
		}
		window.parent.cleanEstadoBuscarPunto();
      }
      
      function getPointFromAddress(adress) {
    	  window.parent.cGeoController.getPointFromAddress(adress,"_iframe-searchPunto");
      }

		function GSearchPoint(){
			hideDiv('searchPointErrorDisplay');
			document.getElementById("searchPointErrorDisplay").innerHTML = "";
			if (validateFormBuscarPunto()){
				if(window.parent.cGeoController.implementaGeoCoding()){
					if(window.parent.cGeoController.implementaGeoGoogle()){
						adress = document.getElementById("searchPuntoAltura").value;
						adress += ', ' + document.getElementById("searchPuntoCalle").value;
						adress += ', ' + document.getElementById("searchPuntoAltura").value;
						adress += ', ' + document.getElementById("searchPuntoCiudad").value;
						if (document.getElementById("searchPuntoProvincia").value!='')
							adress += ', ' + document.getElementById("searchPuntoProvincia").value;
						adress += ', ' + document.getElementById("searchPuntoPais").value;
					}else if(window.parent.cGeoController.implementaGeoCloudMade()){
//						adress = "street:"+document.getElementById("searchPuntoCalle").value+" "+document.getElementById("searchPuntoAltura").value;
//						adress += ';city:' + document.getElementById("searchPuntoCiudad").value;
//						adress += ';country:' + document.getElementById("searchPuntoPais").value;

						//Yahoo
						adress = "location="+document.getElementById("searchPuntoAltura").value+" "+document.getElementById("searchPuntoCalle").value;
						adress += ", "+document.getElementById("searchPuntoCiudad").value+", "+document.getElementById("searchPuntoPais").value;
						
						//Microsoft
//						adress = "addressLine="+document.getElementById("searchPuntoCalle").value+" "+document.getElementById("searchPuntoAltura").value;
//						adress += '&locality=' + document.getElementById("searchPuntoCiudad").value;
//						adress += '&countryRegion=' + document.getElementById("searchPuntoPais").value;
					}else if(window.parent.cGeoController.implementaGeoBykom()){
						adress = document.getElementById("searchPuntoAltura").value;
						adress += ' ' + document.getElementById("searchPuntoTipoCalle").value;
						adress += ' ' + document.getElementById("searchPuntoCalle").value;
						adress += ', ' + document.getElementById("searchPuntoCiudad").value;
						if (document.getElementById("searchPuntoProvincia").value!='')
							adress += ', ' + document.getElementById("searchPuntoProvincia").value;
						//adress += ', ' + document.getElementById("searchPuntoPais").value;
					}
					getPointFromAddress(adress);
				}
			}
		}

	</script>

</head>

<body style="background-color: #E3E3E3; margin:0px; padding:0px;" onload="initialize();" onunload="try {GUnload();} catch(e){};">
<!-- CONTENIDO BUSQUEDA DE PUNTOS POR DIRECCION-->
	<div id="busqueda" style="display:none">
    	<table border="0" width="250">
        	<tr>
            	<td colspan="2">
                	<span class="sectionTITLE">Buscar coordenadas por direccion</span>
                    <div id="searchPointErrorDisplay" class="errorDisplay" style="display:none"></div>
                </td>
		 	</tr>
            <tr id="trTipoCalle" style="display:none;">
            	<td>
                	<span class="inputLBL">Tipo de calle:</span>
                </td>
                <td>
                	<select name="searchPuntoTipoCalle" id="searchPuntoTipoCalle" class="gmapSelect">
                    	<option value="" selected="selected"></option>
                       	<option value="">Calle</option>
                       	<option value="avenida">Avenida</option>
                    </select>
                    <span class="campoObligatorio">*</span>
				</td>
			</tr>
            <tr>
            	<td>
                 	<span class="inputLBL">Calle:</span>
				</td>
                <td>
                	<input type="text" name="searchPuntoCalle" id="searchPuntoCalle" class="gmapInputText" size="26" maxlength="50" value="">
                    <span class="campoObligatorio">*</span>
                </td>
	 	 	</tr>
          	<tr>
            	<td>
                	<span class="inputLBL">Altura:</span>
				</td>
			    <td>
             		<input type="text" name="searchPuntoAltura" id="searchPuntoAltura" class="gmapInputText" size="10" maxlength="5" value="">
                    <span class="campoObligatorio">*</span>
				</td>
			 </tr>
                  <tr>
                  	<td>
                       <span class="inputLBL">Ciudad:</span>
                    </td>
                    <td>
                       <input type="text" name="searchPuntoCiudad" id="searchPuntoCiudad" class="gmapInputText" size="26" maxlength="50" value="">
                       <span class="campoObligatorio">*</span>
                    </td>
                  </tr>
                  <tr>
                  	<td>
                       <span class="inputLBL">Provincia/Estado:</span>
                    </td>
                    <td>
                       <input type="text" name="searchPuntoProvincia" id="searchPuntoProvincia" class="gmapInputText" size="26" maxlength="50" value="">
                    </td>
                  </tr>
                  <tr>
                  	<td>
                       <span class="inputLBL">Pais:</span>
                    </td>
                    <td>
                       <input type="text" name="searchPuntoPais" id="searchPuntoPais" class="gmapInputText" size="26" maxlength="50" value="">
                    </td>
                  </tr>
                </table>
                </div>

<script type="text/javascript">
 	function initialize(){
 		if(window.parent.cGeoController.implementaGeoCoding()){
			cleanFormBuscarPunto();
			try {
   				//geo = new GClientGeocoder();
				document.getElementById("trTipoCalle").style.display = "none";
				if(window.parent.cGeoController.implementaGeoBykom()){
					document.getElementById("trTipoCalle").style.display = "table-row";
				}
				window.parent.document.getElementById('conectandoSearchPunto').style.display = "none";
				showDiv('busqueda');
				window.parent.document.getElementById('buscarPuntoButton').style.visibility = "visible";
			}catch(e){
				window.parent.document.getElementById('conectandoSearchPunto').style.display = "none";
				window.parent.document.getElementById('conectandoSearchPuntoError').style.display = "block";
			}
 		}else{
 			window.parent.document.getElementById('conectandoSearchPunto').style.display = "none";
 			document.getElementById('busqueda').innerHTML = "Su configuraci&oacute;n no le permite visualizar esta opci&oacute;n. Por favor comuniquese con el Administrador.";
 			document.getElementById('busqueda').style.fontSize = "12px";
			showDiv('busqueda');
 		}
	}
</script>
</body>
</html>
